import router from '@/router'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import pinia from '@/stores'
import { useUserInfoStore } from '@/stores/userInfo'
import getPageTitle from './utils/get-page-title'

NProgress.configure({ showSpinner: false });
const userInfoStore = useUserInfoStore(pinia)


// 不用进行token检查的白名单路径数组
const whiteList = ['/login']

// 路由加载前
router.beforeEach(async (to, from, next) => {
  // 在显示进度条
  NProgress.start()
  // 设置整个页面的标题
  document.title = getPageTitle(to.meta.title as string)

  const token = sessionStorage.getItem('AccessToken')
  // 如果token存在(已经登陆或前面登陆过)
  if (token) {
    // 如果请求的是登陆路由
    if (to.path === '/login') {
      // 直接跳转到根路由, 并完成进度条
      next({ path: '/home' })
      NProgress.done()
    } else { // 请求的不是登陆路由
      next()
    }
  } else { // 没有token



    // next(`/login?redirect=${to.path}`)
    // next({ path: '/login' })
    // 如果目标路径在白名单中(是不需要token的路径)
    if (whiteList.indexOf(to.path) !== -1) {
      // 放行
      next()
    } else {
      next(`/login?redirect=${to.path}`)
    }
  }
})

// 路由加载后
router.afterEach(() => {
  NProgress.done();
})
